Computer appliances are devices with one or a few specific functions and limited ability to configure. A computer appliance may be an embedded system (a special-purpose system in which the computer is completely encapsulated by the device it controls). A router is an example of a computer appliance which forwards data packets across a network toward their destinations, through a process known as routing. A Network-Attached Storage (NAS) device is an example of a computer appliance which connects to a computer network to provide centralized data access and storage to a diverse range of differing network clients. A Storage Area Network (SAN) device is an example of a computer appliance which allows connection to remote targets such as disks and tape drives on a network for block level I/O. Core files (a recorded state of working memory at a specific time) may be generated to aid in diagnosing potential problems with a computer appliance.
Traditionally, generation of core files was very disruptive to a computer appliance. The computer appliance was halted so that resources could be seized for core file generation. The contents of memory were then processed (to determine which areas of memory belonged to the system and needed to be recorded and which areas were user data and did not need to be recorded), recorded, and (optionally) compressed to generate a useable core file. Core file generation generally required more resources than the computer appliance could spare without disruption and rebool of the computer appliance was required subsequent to core file generation to restore normal operation. Because of this disruption and subsequent requirement to rebool the computer appliance, core files are often not generated when needed if the operation of the computer appliance is deemed more important than generation of a core file. Even if a core file is generated, the core file may be generated when less critical activities are taking place. This may reduce the value of the core file for purposes of diagnosing potential problems with the computer appliance that occur during more critical activities. As a result, the desire to keep the computer appliance running may interfere with diagnosis of potential problems with the computer appliance.
Consequently, it would be desirable to non-disruptively generate core files without rebool in order to diagnose potential problems with a computer appliance.